unit Pergunta;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
  TTipoBotao = (tbAbortarRepetirIgnorar, tbOK, tbOKCancel, tbRepetirCancelar, tbSimNao, tbSimNaoCancelar);
  TTipoIcone = (tiExclamacao,tiAdvertencia, tiInformacao, tiPergunta, tiParada, tiErro);

  TPergunta = class(TComponent)
    private
    Ti: String;
    Per: String;
    FTipoBotao: TTipoBotao;
    FTipoIcone: TTipoIcone;
    function Botoes(var Botao: TTipoBotao):Integer ;
    function Icone(var Msg: TTipoIcone): Integer ;
  published
    function Executar: integer;
    property Titulo: String read Ti write Ti;
    property Pergunta: String read Per write Per;
    property TipoDeBotao:  TTipoBotao read FTipoBotao write FTipoBotao;
    property TipoDeIcone:  TTipoIcone read FTipoIcone write FTipoIcone;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Standard', [TPergunta]);
end;

function TPergunta.Executar: integer;
begin
result := Application.MessageBox(Pchar(Per),Pchar(Ti),Botoes(FTipoBotao)+Icone(FTipoIcone));
end;

function TPergunta.Botoes(var Botao: TTipoBotao): Integer ;
begin
case Botao of
tbAbortarRepetirIgnorar: result := MB_ABORTRETRYIGNORE;
tbOK: result := MB_OK;
tbOKCancel: result := MB_OKCANCEL;
tbRepetirCancelar: result := MB_RETRYCANCEL;
tbSimNao: result := MB_YESNO;
tbSimNaoCancelar: result := MB_YESNOCANCEL;
end;
end;


function TPergunta.Icone(var Msg: TTipoIcone): Integer ;
begin
case Msg of
tiExclamacao: result := mb_IconExclamation;
tiAdvertencia: result := MB_ICONWARNING;
tiInformacao: result := MB_ICONINFORMATION;
tiPergunta: result := MB_ICONQUESTION;
tiParada: result := MB_ICONSTOP;
tiErro: result := MB_ICONSTOP;
end;
end;


end.
